Systems and methods for detecting pulses

ABSTRACT

According to embodiments, systems and methods are provided for detecting pulses in a PPG signal. Local minima and maxima points may be identified in the PPG signal. Each minimum may be paired with an adjacent maximum forming an upstroke segment. Noise may be removed by comparing adjacent segments and ignoring segments that are too long or too large. Notches in the pulse may be identified and ignored by analyzing adjacent segments. Adjacent upstroke segments may be combined as a single upstroke if the lengths of adjacent upstroke segments are about the same, have similar slopes, and the end point of one segment is close to the start point of an adjacent segment. Segments having small temporal or amplitude difference relative to adjacent segments may be disregarded. The remaining segments may represent the pulse upticks. A sliding time window may be used instead to detect pulses in the PPG signal.

CROSS REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of U.S. patent application Ser. No.12/242,908, filed Sep. 30, 2008, which claims the benefit of U.S.Provisional Application Nos. 61/077,092, filed Jun. 30, 2008 and61/077,130, filed Jun. 30, 2008, each of which is hereby incorporated byreference herein in its entirety.

SUMMARY

This disclosure relates to processing a photoplethysmograph (PPG) signaland, more particularly, this disclosure relates to detectingphysiological pulses in a PPG signal.

A time domain PPG signal is received. Initial processing may beperformed on the PPG signal by, for example, filtering the PPG signal toremove high or low frequency noise components. In one embodiment,turning points (e.g., local minima and local maxima points) areidentified in the PPG signal. This may be performed by, for example,computing a second derivative of the received PPG signal. Each minimapoint may be paired with an adjacent maxima point to form an upstrokesegment of a pulse. Alternatively, a local maxima point may be pairedwith a local minima point to form a downstroke segment of the pulse.

Neighboring upstroke segments may be analyzed to remove noise. Forexample, seven neighboring upstrokes may be analyzed to derive athreshold value that represents their mean or average amplitude ortemporal length values. The threshold value may be compared with aparticular upstroke segment in question to determine whether theupstroke segment is either too long in time or too large in amplitude.If the particular upstroke segment is too long in time or too large inamplitude relative to the neighboring upstrokes (e.g., represented bythe threshold value) the particular upstroke may be ignored or removedas being noise.

Notches or other PPG phenomena may be detected by comparing the lengthof an upstroke segment to the length of an adjacent upstroke segment.For example, if a detected upstroke segment is five times longer in timeor larger in amplitude than an adjacent upstroke segment, then thedetected upstroke may be determined to be a notch (e.g., a dichroticnotch, an ankle notch or a shoulder notch) and may be ignored orremoved.

If desired, adjacent upstroke segments may be combined to form a singleupstroke segment. For example, the lengths and slopes of adjacentupstroke segments may be determined and compared. If the lengths andslopes of the adjacent upstroke segments are about the same and if theend point of one upstroke segment is close in temporal distance and/orin amplitude to the starting point of the adjacent upstroke segment,then the adjacent upstrokes may be combined to form a single upstrokesegment. This may remove notches located, for example, in the middle ofpulse upstrokes.

In one embodiment, notches in pulse segments of a PPG signal may beidentified (and subsequently removed or ignored) by comparing thedifference in amplitude, time, or both for each pair of adjacentupstroke segments. Pairs of upstroke segments that have small temporaldifferences and/or small amplitude differences may be ignored as beingartifacts. The remaining pairs of upstroke segments (i.e., the upstrokesegments that have not been removed or ignored) may represent thepulses.

In one embodiment, upstroke segments of a pulse may be detected by usinga sliding time window. For example, a sliding time window that isslightly larger (e.g., between 1-2 times (e.g., 1.3-1.5) the duration ofpulses) may be applied to the received PPG signal. The overall maximumand minimum points within the sliding time window are determined. Theupstroke segment formed by the overall maximum and minimum points mayidentify the upstroke in the pulse. The size of the sliding time windowcan be determined using a separate module that provides the heart rateof a patient. Alternatively, the initial size of the initial window canbe a predetermined size and dynamically adjusted based on changes inpulse temporal lengths or heartbeats.

The detected pulse features (e.g., upstrokes, amplitudes, start and endpoints of the upstrokes, frequency, and slopes) may be used for furtherprocessing (e.g., in continuous, non-invasive blood pressure (CNIBP) forcomputing pulse transit time by detecting features from a pulse from oneor more PPG signals or mapping the heart rate on a wavelet ratio surfacefor calculating blood oxygen saturation).

BRIEF DESCRIPTION OF THE DRAWINGS

The above and other features of the present invention, its nature andvarious advantages will be more apparent upon consideration of thefollowing detailed description, taken in conjunction with theaccompanying drawings in which:

FIG. 1 shows an illustrative pulse oximetry system in accordance with anembodiment;

FIG. 2 is a block diagram of the illustrative pulse oximetry systemmonitoring system of FIG. 1 coupled to a patient in accordance with anembodiment;

FIG. 3 is a block diagram of an illustrative signal processing system inaccordance with an embodiment;

FIG. 4 is block diagram of an illustrative pulse detection system inaccordance with an embodiment of the present disclosure;

FIGS. 5 and 6 show illustrative PPG signals in accordance withembodiments of the present disclosure; and

FIG. 7 is a flow chart of illustrative steps that may be performed in anembodiment.

DETAILED DESCRIPTION

This disclosure generally relates to pulse detection in, for example, atime-domain PPG signal. It should be understood that the received PPGsignal may be digital. For illustrative purposes, this disclosure willbe described in the context of time-domain PPG signal generated by apulse oximeter. It should be understood that the PPG signal may also begenerated by any other suitable device(s) capable of generating a PPG orany plethysmograph signal.

It will be understood that the present disclosure is applicable to anysuitable signals and that PPG signals are used merely for illustrativepurposes. Those skilled in the art will recognize that the presentdisclosure has wide applicability to other signals including, but notlimited to other biosignals (e.g., electrocardiogram,electroencephalogram, electrogastrogram, electromyogram, heart ratesignals, pathological sounds, ultrasound, or any other suitablebiosignal), dynamic signals, non-destructive testing signals, conditionmonitoring signals, fluid signals, geophysical signals, astronomicalsignals, electrical signals, financial signals including financialindices, sound and speech signals, chemical signals, meteorologicalsignals including climate signals, any other suitable signal, or anycombination thereof.

The light passed through the tissue is selected to be of one or morewavelengths that are absorbed by the blood in an amount representativeof the amount of the blood constituent present in the blood. The amountof light passed through the tissue varies in accordance with thechanging amount of blood constituent in the tissue and the related lightabsorption.

FIG. 1 shows an embodiment of pulse oximetry monitoring system 10 thatmay also be used to perform pulse oximetry. System 10 may include asensor 12 and a monitor 14. Sensor 12 may include an emitter 16 foremitting light at one or more wavelengths into a patient's tissue. Adetector 18 may also be provided in sensor 12 for detecting the lightoriginally from emitter 16 that emanates from the patient's tissue afterpassing through the tissue.

According to another embodiment and as will be described, system 10 mayinclude a plurality of sensors forming a sensor array in lieu of singlesensor 12. Each of the sensors of the sensor array may be acomplementary metal oxide semiconductor (CMOS) sensor. Alternatively,each sensor of the array may be charged coupled device (CCD) sensor. Inanother embodiment, the sensor array may be made up of a combination ofCMOS and CCD sensors. The CCD sensor may comprise a photoactive regionand a transmission region for receiving and transmitting data whereasthe CMOS sensor may be made up of an integrated circuit having an arrayof pixel sensors. Each pixel may have a photodetector and an activeamplifier.

According to an embodiment, emitter 16 and detector 18 may be onopposite sides of a digit such as a finger or toe, in which case thelight that is emanating from the tissue has passed completely throughthe digit. In an embodiment, emitter 16 and detector 18 may be arrangedso that light from emitter 16 penetrates the tissue and is reflected bythe tissue into detector 18, such as a sensor designed to obtain pulseoximetry or continuous, non-invasive blood pressure (CNIBP) data from apatient's forehead.

In an embodiment, the sensor or sensor array may be connected to anddraw its power from monitor 14 as shown. In another embodiment, thesensor may be wirelessly connected to monitor 14 and include its ownbattery or similar power supply (not shown). Monitor 14 may beconfigured to calculate physiological parameters (e.g., blood pressure)based at least in part on data received from sensor 12 relating to lightemission and detection. In an alternative embodiment, the calculationsmay be performed on the monitoring device itself and the result of thelight intensity reading may be passed to monitor 14. Further, monitor 14may include a display 20 configured to display the physiologicalparameters or other information about the system. In the embodimentshown, monitor 14 may also include a speaker 22 to provide an audiblesound that may be used in various other embodiments, such as forexample, sounding an audible alarm in the event that a patient'sphysiological parameters are not within a predefined normal range.

In an embodiment, sensor 12, or the sensor array, may be communicativelycoupled to monitor 14 via a cable 24. However, in other embodiments, awireless transmission device (not shown) or the like may be used insteadof or in addition to cable 24.

In the illustrated embodiment, system 10 may also include amulti-parameter patient monitor 26. The monitor may be cathode ray tubetype, a flat panel display (as shown) such as a liquid crystal display(LCD) or a plasma display, or any other type of monitor now known orlater developed. Multi-parameter patient monitor 26 may be configured tocalculate physiological parameters and to provide a display 28 forinformation from monitor 14 and from other medical monitoring devices orsystems (not shown). For example, multi-parameter patient monitor 26 maybe configured to display an estimate of a patient's blood pressure frommonitor 14, blood oxygen saturation generated by monitor 14 (referred toas an “SpO₂” measurement), and pulse rate information from monitor 14.

Monitor 14 may be communicatively coupled to multi-parameter patientmonitor 26 via a cable 32 or 34 that is coupled to a sensor input portor a digital communications port, respectively and/or may communicatewirelessly (not shown). In addition, monitor 14 and/or multi-parameterpatient monitor 26 may be coupled to a network to enable the sharing ofinformation with servers or other workstations (not shown). Monitor 14may be powered by a battery (not shown) or by a conventional powersource such as a wall outlet.

FIG. 2 is a block diagram of a pulse oximetry monitoring system, such assystem 10 of FIG. 1, which may be coupled to a patient 40 in accordancewith an embodiment. Certain illustrative components of sensor 12 andmonitor 14 are illustrated in FIG. 2. Sensor 12 may include emitter 16,detector 18, and encoder 42. In the embodiment shown, emitter 16 may beconfigured to emit at least one wavelength of light (e.g., RED or IR)into a patient's tissue 40. For calculating SpO₂, emitter 16 may includea RED light emitting light source such as RED light emitting diode (LED)44 and an IR light emitting light source such as IR LED 46 for emittinglight into the patient's tissue 40. In other embodiments, emitter 16 mayinclude a light emitting light source of a wavelength other than RED orIR. In one embodiment, the RED wavelength may be between about 600 nmand about 700 nm, and the IR wavelength may be between about 800 nm andabout 1000 nm. In embodiments where a sensor array is used in place ofsingle sensor, each sensor may be configured to emit a singlewavelength. For example, a first sensor emits only a RED light while asecond only emits an IR light.

It will be understood that, as used herein, the term “light” may referto energy produced by radiative sources and may include one or more ofultrasound, radio, microwave, millimeter wave, infrared, visible,ultraviolet, gamma ray or X-ray electromagnetic radiation. As usedherein, light may also include any wavelength within the radio,microwave, infrared, visible, ultraviolet, or X-ray spectra, and thatany suitable wavelength of electromagnetic radiation may be appropriatefor use with the present techniques. Detector 18 may be chosen to bespecifically sensitive to the chosen targeted energy spectrum of theemitter 16.

In an embodiment, detector 18 may be configured to detect the intensityof light at the emitted wavelengths (or any other suitable wavelength).Alternatively, each sensor in the array may be configured to detect anintensity of a single wavelength. In operation, light may enter detector18 after passing through the patient's tissue 40. Detector 18 mayconvert the intensity of the received light into an electrical signal.The light intensity is directly related to the absorbance and/orreflectance of light in the tissue 40. That is, when more light at acertain wavelength is absorbed or reflected, less light of thatwavelength is received from the tissue by the detector 18. Afterconverting the received light to an electrical signal, detector 18 maysend the signal to monitor 14, where physiological parameters may becalculated based on the absorption of one or more of the RED and IR (orother suitable) wavelengths in the patient's tissue 40. Monitor 14 mayalso detect the locations of pulses within the signal received fromdetector 18.

In an embodiment, encoder 42 may contain information about sensor 12,such as what type of sensor it is (e.g., whether the sensor is intendedfor placement on a forehead or digit) and the wavelength or wavelengthsof light emitted by emitter 16. This information may be used by monitor14 to select appropriate algorithms, lookup tables and/or calibrationcoefficients stored in monitor 14 for calculating the patient'sphysiological parameters.

Encoder 42 may contain information specific to patient 40, such as, forexample, the patient's age, weight, and diagnosis. This information mayallow monitor 14 to determine, for example, patient-specific thresholdranges in which the patient's physiological parameter measurementsshould fall and to enable or disable additional physiological parameteralgorithms. This information may also be used to select and providecoefficients for equations (associated with the empirical data) fromwhich blood pressure is determined based on an area under a pulse of aPPG signal. Encoder 42 may, for instance, be a coded resistor whichstores values corresponding to the type of sensor 12 or the type of eachsensor in the sensor array, the wavelength or wavelengths of lightemitted by emitter 16 on each sensor of the sensor array, and/or thepatient's characteristics. In another embodiment, encoder 42 may includea memory on which one or more of the following information may be storedfor communication to monitor 14: the type of the sensor 12; thewavelength or wavelengths of light emitted by emitter 16; the particularwavelength each sensor in the sensor array is monitoring; a signalthreshold for each sensor in the sensor array; any other suitableinformation; or any combination thereof.

In an embodiment, signals from detector 18 and encoder 42 may betransmitted to monitor 14. In the embodiment shown, monitor 14 mayinclude a general-purpose microprocessor 48 connected to an internal bus50. Microprocessor 48 may be adapted to execute software, which mayinclude an operating system and one or more applications, as part ofperforming the functions described herein. Also connected to bus 50 maybe a read-only memory (ROM) 52, a random access memory (RAM) 54, userinputs 56, display 20, and speaker 22.

RAM 54 and ROM 52 are illustrated by way of example, and not limitation.Any suitable computer-readable media may be used in the system for datastorage. Computer-readable media are capable of storing information thatcan be interpreted by microprocessor 48. This information may be data ormay take the form of computer-executable instructions, such as softwareapplications, that cause the microprocessor to perform certain functionsand/or computer-implemented methods. Depending on the embodiment, suchcomputer-readable media may include computer storage media andcommunication media. Computer storage media may include volatile andnon-volatile, removable and non-removable media implemented in anymethod or technology for storage of information such ascomputer-readable instructions, data structures, program modules orother data. Computer storage media may include, but is not limited to,RAM, ROM, EPROM, EEPROM, flash memory or other solid state memorytechnology, CD-ROM, DVD, or other optical storage, magnetic cassettes,magnetic tape, magnetic disk storage or other magnetic storage devices,or any other medium which can be used to store the desired informationand which can be accessed by components of the system.

In the embodiment shown, a time processing unit (TPU) 58 may providetiming control signals to a light drive circuitry 60, which may controlwhen emitter 16 is illuminated and multiplexed timing for the RED LED 44and the IR LED 46. TPU 58 may also control the gating-in of signals fromdetector 18 through an amplifier 62 and a switching circuit 64. Thesesignals are sampled at the proper time, depending upon which lightsource is illuminated. The received signal from detector 18 may bepassed through an amplifier 66, a low pass filter 68, and ananalog-to-digital converter 70. The digital data may then be stored in aqueued serial module (QSM) 72 (or buffer) for later downloading to RAM54 as QSM 72 fills up. In one embodiment, there may be multiple separateparallel paths having amplifier 66, filter 68, and A/D converter 70 formultiple light wavelengths or spectra received.

In an embodiment, microprocessor 48 may detect physiological pulses inthe PPG signal and determine the patient's physiological parameters,such as blood pressure, SpO₂, and pulse rate, using various algorithmsand/or look-up tables based on the value of the received signals and/ordata corresponding to the light received by detector 18. For example,microprocessor 48 may detect potential pulses in a PPG signal byidentifying and pairing each local minimum point with an adjacent localmaximum point in the PPG signal to form upstroke segments. Indetermining whether a detected upstroke is part of a pulse (and notnoise), microprocessor 48 may, for example, compare lengths oramplitudes of each adjacent pair of upstroke segments formed by localminimum/maximum points.

Microprocessor 48 may detect notches (e.g., dichrotic notches, anklenotches or shoulder notches) in the PPG signal. If desired, where anotch is detected between two upstrokes, microprocessor 48 may combinethe two upstrokes to form a single upstroke (i.e., representing a pulse)when the length, slope and location of the upstrokes suitably match.

Microprocessor 48 may detect and disregard artifacts located off-pulsein the PPG signal and provide pulse information to another component inthe system.

In another embodiment, microprocessor 48 may use a sliding time windowof a suitable size/length to detect the upstrokes (or downstrokes) inthe PPG signal by finding the minimum and maximum points within thesliding time window.

Signals corresponding to information about patient 40, and particularlyabout the intensity of light emanating from a patient's tissue overtime, may be transmitted from encoder 42 to a decoder 74. These signalsmay include, for example, encoded information relating to patientcharacteristics. Decoder 74 may translate these signals to enable themicroprocessor to determine the thresholds based on algorithms orlook-up tables stored in ROM 52. User inputs 56 may be used to enterinformation about the patient, such as age, weight, height, diagnosis,medications, treatments, and so forth. In an embodiment, display 20 mayexhibit a list of values which may generally apply to the patient, suchas, for example, age ranges or medication families, which the user mayselect using user inputs 56.

The optical signal through the tissue can be degraded by noise, amongother sources. One source of noise is ambient light that reaches thelight detector. Another source of noise is electromagnetic coupling fromother electronic instruments. Movement of the patient also introducesnoise and affects the signal. For example, the contact between thedetector and the skin, or the emitter and the skin, can be temporarilydisrupted when movement causes either to move away from the skin. Inaddition, because blood is a fluid, it responds differently than thesurrounding tissue to inertial effects, thus resulting in momentarychanges in volume at the point to which the sensor or probe is attached.

Noise (e.g., from patient movement) can degrade a CNIBP or pulseoximetry signal relied upon by a physician, without the physician'sawareness. This is especially true if the monitoring of the patient isremote, the motion is too small to be observed, or the doctor iswatching the instrument or other parts of the patient, and not thesensor site. Pulse oximetry (i.e., PPG) signals may involve operationsthat reduce the amount of noise present in the signals or otherwiseidentify noise components in order to prevent them from affectingmeasurements of physiological parameters derived from the PPG signals.

FIG. 3 is an illustrative processing system 300 in accordance with anembodiment. In this embodiment, input signal generator 310 generates aninput signal 316. As illustrated, input signal generator 310 may includeoximeter 320 (or similar device) coupled to sensor 318, which mayprovide as input signal 316, a PPG signal. It will be understood thatinput signal generator 310 may include any suitable signal source,signal generating data, signal generating equipment, or any combinationthereof to produce signal 316.

An oximeter may include a light sensor that is placed at a site on apatient, typically a fingertip, toe, forehead or earlobe, or in the caseof a neonate, across a foot. The oximeter may pass light using a lightsource through blood perfused tissue and photoelectrically sense theabsorption of light in the tissue. For example, the oximeter may measurethe intensity of light that is received at the light sensor as afunction of time. A signal representing light intensity versus time or amathematical manipulation of this signal (e.g., a scaled versionthereof, a log taken thereof, a scaled version of a log taken thereof,etc.) may be referred to as the photoplethysmograph (PPG) signal. Inaddition, the term “PPG signal,” as used herein, may also refer to anabsorption signal (i.e., representing the amount of light absorbed bythe tissue) or any suitable mathematical manipulation thereof. The lightintensity or the amount of light absorbed may then be used to calculatethe amount of the blood constituent (e.g., oxyhemoglobin) being measuredas well as the pulse rate and when each individual pulse occurs.

In this embodiment, signal 316 may be coupled to processor 312.Processor 312 may be any suitable software, firmware, and/or hardware,and/or combinations thereof for processing signal 316. For example,processor 312 may include one or more hardware processors (e.g.,integrated circuits), one or more software modules, computer-readablemedia such as memory, firmware, or any combination thereof. Processor312 may, for example, be a computer or may be one or more chips (i.e.,integrated circuits). Processor 312 may perform some or all of thecalculations pulse detection methods of the present disclosure similarto microprocessor 48. Processor 312 may also perform any suitable signalprocessing of signal 316 to filter signal 316, such as any suitableband-pass filtering, adaptive filtering, closed-loop filtering, and/orany other suitable filtering, and/or any combination thereof. Forexample, signal 316 may be filtered one or more times prior to or afteridentifying characteristic points in signal 316.

Processor 312 may be coupled to one or more memory devices (not shown)or incorporate one or more memory devices such as any suitable volatilememory device (e.g., RAM, registers, etc.), non-volatile memory device(e.g., ROM, EPROM, magnetic storage device, optical storage device,flash memory, etc.), or both. Processor 312 may be coupled to acalibration device (not shown).

Processor 312 may be coupled to output 314. Output 314 may be anysuitable output device such as, for example, one or more medical devices(e.g., a medical monitor that displays various physiological parameters,a medical alarm, or any other suitable medical device that eitherdisplays physiological parameters or uses the output of processor 212 asan input), one or more display devices (e.g., monitor, PDA, mobilephone, any other suitable display device, or any combination thereof),one or more audio devices, one or more memory devices (e.g., hard diskdrive, flash memory, RAM, optical disk, any other suitable memorydevice, or any combination thereof), one or more printing devices, anyother suitable output device, or any combination thereof.

It will be understood that system 300 may be incorporated into system 10(FIGS. 1 and 2) in which, for example, input signal generator 310 may beimplemented as parts of sensor 12 and monitor 14 and processor 312 maybe implemented as part of monitor 14. In some embodiments, portions ofsystem 300 may be configured to be portable. For example, all or a partof system 300 may be embedded in a small, compact object carried with orattached to the patient (e.g., a watch (or other piece of jewelry) orcellular telephone). In such embodiments, a wireless transceiver (notshown) may also be included in system 300 to enable wirelesscommunication with other components of system 10.

FIG. 4 is block diagram of an illustrative PPG signal processing systemin accordance with an embodiment of the present disclosure. PPG signalprocessing system 400 may include a PPG signal generation instrument 410(e.g., sensor 12 (FIG. 2)), preprocessing circuitry 420 (e.g., filter68), pulse detection circuitry 430, a memory 440 (e.g., ROM 52 or RAM54) and processing circuitry 450 (microprocessor 48). It should beunderstood that although each component is drawn separately in FIG. 4,the components may be part of the same device or may be part ofdifferent devices in various combinations. For example, PPG signalgeneration instrument 410 and preprocessing circuitry 420 may beimplemented by the same circuitry or device.

Input signal generation instrument 410 generates an input signal 416.Input signal generation instrument 410 may include an oximeter (notshown) coupled to sensor 12 (FIG. 2), which may provide a PPG signal asinput signal 416. It will be understood that input signal generationinstrument 410 may include any suitable signal source, signal generatingdata, signal generating equipment, or any combination thereof to producesignal 416. Signal 416 may be any suitable signal or signals, such as,for example, biosignals (e.g., electrocardiogram, electroencephalogram,electrogastrogram, electromyogram, heart rate signals, pathologicalsounds, ultrasound, or any other suitable biosignal), dynamic signals,non-destructive testing signals, condition monitoring signals, fluidsignals, geophysical signals, astronomical signals, electrical signals,financial signals including financial indices, sound and speech signals,chemical signals, meteorological signals including climate signals, anyother suitable signal, or any combination thereof.

Signal 416 may be coupled to preprocessing circuitry 420. Preprocessingcircuitry 420 may be any suitable software, hardware, or both forprocessing signal 416. For example, preprocessing circuitry 420 mayinclude one or more hardware processors (e.g., integrated circuits), oneor more software modules, memory, or any combination thereof.Preprocessing circuitry 420 may, for example, be a computer or may beone or more chips (i.e., integrated circuits). Preprocessing circuitry420 may perform any suitable signal processing of signal 416 to filtersignal 416, such as any suitable band-pass filtering, adaptivefiltering, closed-loop filtering, any other suitable filtering, or anycombination thereof.

Preprocessing circuitry 420 may be coupled to processing circuitry 450.Processing circuitry 450 may be coupled to any suitable output devicesuch as, for example, one or more medical devices (e.g., a medicalmonitor that displays various physiological parameters, a medical alarm,or any other suitable medical device that either displays physiologicalparameters or uses the output of preprocessing circuitry 420 as aninput), one or more display devices 20 (FIG. 2) (e.g., monitor, PDA,mobile phone, any other suitable display device, or any combinationthereof), one or more audio devices 22, one or more memory devices 52 or54 (e.g., hard disk drive, flash memory, RAM, optical disk, any othersuitable memory device, or any combination thereof), one or moreprinting devices, any other suitable output device, or any combinationthereof.

PPG signal generation instrument 410 may output the generated PPG signalto preprocessing circuitry 420. PPG signal generation instrument 410 maybe coupled to preprocessing circuitry 420 or pulse detection circuitry430 through any wired or wireless communication medium. For example, PPGsignal generation instrument 410 may output the PPG signal overBLUETOOTH, 802.11, WiFi, WiMax, cable, satellite, Infrared, or any othersuitable transmission scheme.

FIGS. 5 and 6 show exemplary PPG signals 500 and 600 that may be outputby preprocessing circuitry 420 in accordance with embodiments of thepresent disclosure.

In an embodiment, preprocessing circuitry 420 may include a Fast FourierTransform or Inverse Fast Fourier Transform algorithm to convert thereceived PPG signal into the frequency domain or time-domainrespectively. Preprocessing circuitry 420 may also include ananalog-to-digital converter or digital-to-analog converter for providingthe PPG signal to pulse detection circuitry 430 in a suitable form.

In an embodiment, preprocessing circuitry 420 may be excluded fromsystem 400 and the PPG signal outputted by PPG signal generationinstrument 410 may be provided directly to pulse detection circuitry430. Pulse detection circuitry 430 may perform preprocessing operationson the received signal. Pulse detection circuitry 430 may be implementedby any one or all of the components of monitor 14 (FIG. 2) (e.g.,microprocessor 48) or processor 312 (FIG. 3).

Preprocessing circuitry 420 may output the processed PPG signal tomemory 440 for storage, to pulse detection circuitry 430, or both. Pulsedetection circuitry 430 may process the PPG signal to identify pulses.For example, pulse detection circuitry 430 may detect the upstrokeportions, the downstroke portions, or both of the received PPG signal.The resultant series of upstrokes, downstrokes, or both may be processedto exclude those upstrokes, downstrokes, or both attributed to dichroticnotches, other notches (e.g., ankle and shoulder notches), noise, or anycombination thereof. As used herein the term ankle notch refers to anartifact that may be present in the PPG signal near the start of thepulse (e.g., near the base of an upstroke) and the term shoulder notchrefers to an artifact that may be present in the PPG signal near the topportion of the pulse (e.g., near the peak of the upstroke). Theremaining upstrokes, downstrokes, or both may represent detected pulses.In some implementations, ankle notches and shoulder notches may beignored when representing the pulses. Pulse detection circuitry 430 mayoperate in real-time on the received PPG signal or may retrieve andstore portions of the PPG signal from/to memory 440.

Although the techniques described herein in connection with detecting oridentifying pulses are with regard to the detection of an upstroke in aPPG signal (e.g., segments in the PPG signal that have a positive slopebetween two turning points), it should be understood that similartechniques may be used to detect a downstroke in a PPG signal (e.g.,segments in the PPG signal that have a negative slope between twoturning points). It is for purposes of clarity and conciseness, and notby way of limitation, that the present disclosure is described withrespect to upstrokes.

In one embodiment, pulse detection circuitry 430 may provide pulseinformation derived from a PPG signal to processing circuitry 450 foruse in any suitable application or analysis. In another embodiment,pulse detection circuitry 430 may generate a new signal representingpulses detected from the PPG signal. For example, the new signal maycontain a series of upstrokes (or any other suitable indicator)representing a series of pulses. In another embodiment, pulse detectioncircuitry 430 may generate data about the detected pulses or derivedfrom the detected pulses such as pulse rate, pulse intensity, pulsetransit time (e.g., using more than one PPG signal), or any othersuitable data. This data may be used to, for example, display, on anysuitable display device, the occurrence of a pulse using, for example,ticks, blips, beeps, or any other suitable visual or audible indicator,or any combination thereof. In one suitable arrangement, processingcircuitry 450 may be coupled to a display device, which a doctor mayview to analyze the patient's condition. Processing circuitry 450 mayalso perform any or all of these or any other suitable processingoperations described with reference to pulse detection circuitry 430.

In another embodiment, pulse features may be used for furtherprocessing, for example, in continuous non-invasive blood pressure(CNIBP) measurement or mapping the heart rate on the wavelet ratiosurface for calculating SpO₂, which is discussed in more detail in U.S.Patent Publication No. 2006/0258921, published on Nov. 16, 2006, whichis hereby incorporated by reference herein in its entirety. It will beunderstood that pulse information derived in accordance with the presentdisclosure may be used in any suitable application, system, or both.

FIG. 7 is a flow chart 700 of illustrative steps performed by pulsedetection circuitry 430 (which may also be implemented by microprocessor48 (FIG. 2)) in accordance with an embodiment of the present disclosure.The processes performed by pulse detection circuitry 430 illustrated inFIG. 7 will be described with continued references to PPG signals 500 or600 (FIG. 5 or 6).

At step 710, a PPG signal may be received, for example, frompreprocessing circuitry 420, instrument 410 (e.g., sensor 12 (FIG. 2) orretrieved from memory 440 (FIG. 4).

At step 720, initial processing may be performed on the received PPGsignal. For example, as discussed above, preprocessing circuitry 420 maypass the PPG signal through a band pass filter, low pass filter, highpass filter, comb filter, or any other suitable filter or combinationthereof. The filter may remove some high and low frequency noisecomponents in the PPG signal which may simplify and increase theaccuracy of pulse detection.

At step 730, local minima and local maxima points are identified in thePPG signal. For example, microprocessor 48 may compute the first orsecond derivative of the PPG signal (or a portion thereof) to identifyturning points in the PPG signal. In one suitable approach, localminimum and local maximum points may be defined as turning points (i.e.,points on the PPG signal where the slope changes from positive tonegative or negative to positive). For example, as shown in FIG. 5,points 510, 520 and 530 may be identified as local minima points whilepoints 512, 522 and 532 may be identified as local maxima points.Similarly, as shown in FIG. 6, points 610 and 614 may be identified aslocal minima points while points 612 and 616 may be identified as localmaxima points.

At step 740, each minima point may be paired with an adjacent maximapoint. For example, to identify upstroke segments, microprocessor 48 maypair each identified minima point (e.g., identified by way of the firstderivative) with an identified adjacent maxima point. For example, whensearching for upstrokes, a minimum point may be paired with a maximapoint located forward in time (i.e., to the right). Alternatively, whensearching for downstrokes, a maxima point may be paired with a minimapoint located forward in time (i.e., to the right).

In one embodiment, the slope of the segment formed by the two adjacentpoints may be computed to determine, for example, whether the segmentformed by the points is an upstroke or a downstroke. The slope of thesegment formed by the two adjacent points may be determined by computingthe first derivative of the PPG signal and determining whether theregion between the adjacent points is positive or negative.Alternatively, the slope of the segment may be determined to be positiveor negative by comparing the two adjacent points to determine which ofthe two points is larger (i.e., the slope may be determined to bepositive when the point later in time is larger than the adjacentpoint). A positive slope (i.e., when the value of the first derivativeof the PPG signal is positive) between the two points may indicate anupstroke in the pulse while a negative slope may indicate a downstrokein the pulse. As defined herein, a pulse includes at least one upstrokesegment and at least one adjacent downstroke segment. Within the pulse,there may be further combinations of smaller upstroke and downstrokesegments which may indicate dichrotic, shoulder and/or ankle notches(depending on the locations of the segments).

For example, points 510 and 512 of PPG signal 500 may be paired to forma segment. The slope of the segment formed by points 510 and 512 may bedetermined to be positive which may indicate that the segment is anupstroke portion of the pulse. Also, in PPG signal 600, points 610 and612 may be paired and points 614 and 616 may be paired (FIG. 6) to formtwo adjacent upstroke segments of the pulse. As described more fullybelow, the two segments formed by points 610 and 612 as well as 614 and616, individually, do not represent upstrokes of pulses. However, theymay be combined to form a single upstroke indicative of a single pulse.

At step 750, upstrokes due to noise may be identified and/or removedfrom the PPG signal. In one suitable approach, microprocessor 48 mayidentify noise by analyzing a number of neighboring upstrokes (e.g.,seven upstrokes) and determining whether a particular upstroke is eithertoo long in time or too large in amplitude relative to its neighbors.Microprocessor 48 may also identify noise by determining whether aparticular upstroke is too short in time (e.g., less than 0.1 seconds).The gradient may also be used to determine noise by determining that aparticular upstroke has a large peak-to-peak amplitude that occurs overa short period of time. This may be done, for example, by comparing theparticular upstroke to a threshold value that may based on a measure ofthe amplitudes or temporal distances of a number of neighboringupstrokes. In one suitable approach, the threshold value may be basedon, for example, a running average or median amplitude value of theprevious 3 upstrokes, the current upstroke, and the next 3 upstrokesplus one or more standard deviations or some other suitable amount.Alternatively, the threshold value may be based on an average or medianamplitude value of the next 7 upstrokes; the previous 6 upstrokes andthe current upstroke; the current upstroke and the next 6 upstrokes; orany other suitable combination of seven or other suitable number ofupstrokes.

For example, the upstroke identified by points 510 and 512 may have anamplitude with a value 542 d₂. Similarly, the upstroke identified bypoints 520 and 522 may have an amplitude with a value 540 d₁ (FIG. 5).The amplitudes of the remaining upstrokes identified by the remainingpoints may also be determined. Pulse detection circuitry 430 may storethe amplitudes of each of the upstroke segments identified by the pairedpoints in memory 440 (FIG. 4). Pulse detection circuitry 430 may computea mean, median, average or any other suitable value based on each of theamplitudes and use it to compute the threshold value (e.g., by addingany other suitable value such as, for example, a standard deviation).The threshold value may also be stored in memory 440. Pulse detectioncircuitry 430 may retrieve the threshold value from memory 440 (FIG. 4)and compare an amplitude of a particular upstroke segment in the PPGsignal with the threshold value. Based on the comparison, pulsedetection circuitry 430 may determine that the upstroke is noise in thePPG signal (e.g., because the particular upstroke amplitude is largerthan the threshold value) and ignore and/or remove the particularupstroke.

In one embodiment, upstrokes due to noise, notches, or other phenomenamay be identified by comparing a particular upstroke with a mean ormedian of the largest 25% (or any other suitable percentage) byamplitude, time, or both of upstrokes (i.e., as opposed to all of theneighboring upstrokes). In another embodiment, upstrokes may be comparedagainst predefined hard limits to remove noise. For example, if anamplitude or temporal distance of an upstroke is determined to exceed aparticular hard limit value, the upstroke may be determined to be noiseand removed or disregarded. It should be understood that any otherparameter(s) of upstrokes may be analyzed to determine presence ofnoise, notches, or other phenomena.

In one embodiment, pulse detection circuitry 430 may compare thetemporal distances of upstroke segments in the PPG signal to removenoise. For example, pulse detection circuitry 430 may measure thedistance between a start point and an end point that define a detectedupstroke to determine the temporal distance of the upstroke. Forexample, in PPG signal 600, pulse detection circuitry 430 may measurethe distance between points 610 and 612 and assign it a value 620 d₁.Pulse detection circuitry 430 may perform a similar measurement for theremaining detected upstrokes and store these values in memory 440. Pulsedetection circuitry 430 may compute a mean, median, average value orsome other threshold value based on the measured distances and store thethreshold value to memory 440 for subsequent retrieval. In oneembodiment, the threshold value may be computed based on the measurementof seven or other suitable number of detected upstrokes in a similarmanner as discussed above. Pulse detection circuitry 430 may retrievethe threshold value from memory 440 and compare a temporal distance of aparticular detected upstroke in the PPG signal with the threshold value.The upstroke segment may be ignored or removed as being noise, a notch,or any other phenomena when the temporal distance of the upstrokesegment is larger than the threshold value.

At step 760, notches in pulse upstrokes may be detected. For example,the length of a first upstroke segment corresponding to one pair oflocal minima and maxima points may be compared with the length of asecond adjacent upstroke segment corresponding to another pair of localminima and maxima points. Pulse detection circuitry 430 may determinewhether the adjacent upstrokes are substantially longer in time orsubstantially greater in amplitude (e.g., five times longer or greater)relative to each other. If the length of the second upstroke segment isrelatively longer or greater than the length of the first upstrokesegment, then pulse detection circuitry 430 may determine the firstupstroke to be a notch (e.g., dichrotic, ankle or shoulder notch). Pulsedetection circuitry 430 may ignore or remove upstroke segments that aredetermined to be notches.

In one embodiment, pulse detection circuitry 430 may determine whetherthe temporal length or amplitude, or both of the first upstroke isrelatively greater than one or more threshold values. The thresholdvalue(s) may be computed based on a running average, median, maximum,minimum or some other suitable measure of neighboring upstrokes (e.g.,seven neighboring upstrokes). If the temporal length, amplitude, or bothof the first upstroke is relatively shorter than the threshold(s), thenpulse detection circuitry 430 may determine the first upstroke to be anotch. Alternatively, pulse detection circuitry 430 may compare thefirst upstroke to the length or amplitude of one or more upstrokesalready determined to be pulse portions. If the length or amplitude ofthe first upstroke is relatively shorter or smaller than that of otherpulse segments, pulse detection circuitry 430 may determine the firstupstroke to be a notch.

For example, as shown in FIG. 5, the upstroke segment identified bypoints 520 and 522 may be determined to be a notch because the length ofthe upstroke segment identified by points 520 and 522 may be relativelysmaller than the length of upstroke segment identified by points 510 and512 (or points 530 and 532). PPG signal 500 is also shown to include thedichrotic notch 550. It should be understood that step 760 may beoptional and may be skipped or excluded in some implementations aslength may be computed at step 770 (discussed below) in a similar manneras step 760.

In one embodiment, instead of ignoring small upstrokes (e.g., becausethey are determined to be notches), adjacent upstrokes may be splicedtogether under certain circumstances. For example, in FIG. 6, dichroticnotch 640 may cause two upstrokes to be detected. Because dichroticnotch 640 is still part of a pulse, the two detected upstrokes may bespliced together to form a single upstroke 632 defined by points 641 and642. Any suitable criteria may be used in determining whether to splicetwo neighboring upstrokes.

At step 770, upstrokes may be spliced together. For example, upstrokescorresponding to adjacent pairs of points may be compared. Pulsedetection circuitry 430 may determine whether the lengths of theadjacent upstrokes are similar (e.g., within a range of twice the sizeas the adjacent upstroke) and whether the slopes of the adjacentupstrokes are similar (e.g., within a range of twice the size as theadjacent upstroke). For example, upstrokes that are more than twice aslarge and less than twice as small as an adjacent upstroke may beignored. If the adjacent upstrokes have similar length and slope, thenthey may be combined to form a single upstroke if the end point of afirst upstroke (e.g., local maxima point 612 of a first upstrokesegment) is relatively close in temporal distance (e.g., within 5-10% ofthe temporal length of the longer of the two segments) to the startingpoint of the adjacent upstroke segment (e.g., local minima point 614 ofa second adjacent upstroke segment). This may remove notches located,for example, in the middle of pulse upstrokes.

At step 780, artifacts located off-pulse may be detected and removed ordisregarded. Artifacts may be noise in the PPG signal that appearbetween two pulses. Artifacts may be detected by determining thedifference in amplitude and/or time for each pair of points. Forexample, amplitude 540 represents the difference in amplitude betweenpair of points 520 and 522 (FIG. 5). Similarly, temporal distance 620represents the temporal difference of points 610 and 612. Pairs ofpoints that have relatively small temporal differences and/or smallamplitude differences may be disregarded as being artifacts. Forexample, if the temporal distance between a pair of points is less than0.1 seconds or greater than 1 second, the segment identified by the pairof points may be disregarded as being noise.

The remaining pairs (i.e., the pairs of points that have not beenignored, removed or disregarded by pulse detection circuitry 430)through the end of step 780 may be used to identify the pulse upstrokes(i.e., via the troughs and peaks of the PPG signal). These upstrokes canbe used in any suitable way as previously discussed.

It will be understood that the above steps of process 700 areillustrative. Any one of the steps may be modified or removed in asuitable way. The steps may also either be skipped or performed in adifferent order than that described above. Additional steps may be addedto any part of process 700.

In an alternative embodiment, or in combination with the above-describedembodiments, pulse detection circuitry 430 may detect pulses in the PPGsignal by analyzing a section of the PPG signal through a sliding timewindow. In this approach, the maximum and minimum points found withinthe sliding time window may correspond to a pulse upstroke.

This approach avoids the need to account for notches, although noisereduction, as described with regard to step 750 of FIG. 7 may still beperformed.

Pulse detection circuitry 430 may apply a sliding time window having atemporal length of 1-2 pulses (e.g., 1.3-1.5 times the temporal lengthof a pulse) in the PPG signal and analyze the PPG signal section insideof the sliding time window. Pulse length may be determined from anoutside source providing, for example, a pulse rate. Alternatively, thepulse length used to determine the window size may be determinedaccording to a sample of pulses identified in the PPG signal.

For example, if the sliding time window in FIG. 5 runs from theintersection of the axes until point 530, then the detected upstrokewill be formed between overall minimum and maximum points 510 and 512,respectively (e.g., the points in the PPG signal having the smallest andlargest amplitudes or magnitudes on the y-axis). Points 520 and 522,associated with a dichrotic notch would be disregarded.

In one embodiment, the length of the sliding time window may, forexample, start out as a predetermined value (e.g., length of 1.5 pulses)and dynamically change based on external or internal conditions of, forexample, the patient. For example, a separate module may be attached tothe patient and used to monitor the heart rate of the patient. Themodule may output this information to pulse detection circuitry 430 foruse in, for example, dynamically adjusting the temporal length of thesliding time window. For example, if the heart rate of a patientincreases, the pulses may become shorter in temporal length andaccordingly the temporal length of the sliding time window may bedecreased.

The foregoing is merely illustrative of the principles of thisdisclosure and various modifications can be made by those skilled in theart without departing from the scope and spirit of the disclosure.

What is claimed is:
 1. A method for detecting pulses in aphotoplethysmograph (PPG) signal, the method comprising: receiving,using processing equipment, a PPG signal from a subject; identifying,using the processing equipment, segments in the PPG signal, wherein eachsegment comprises a portion of a potential pulse; comparing, using theprocessing equipment, a feature of a segment to features of respectiveneighboring segments; and determining, using the processing equipment,whether each of the segments comprises a pulse portion based on thecomparison.
 2. The method of claim 1, further comprising applying asliding time window to the PPG signal, and wherein identifying segmentsin the PPG signal comprises identifying segments in the sliding timewindow.
 3. The method of claim 2, wherein the sliding time window isassociated with a temporal length, and wherein the temporal length ofthe sliding time window is based on a pulse rate of the subject.
 4. Themethod of claim 3, further comprising dynamically adjusting the temporallength of the sliding time window based on the pulse rate of thesubject.
 5. The method of claim 1, wherein comparing a feature of asegment to features of respective neighboring segments comprisescomparing an amplitude of a segment to a threshold value based onamplitudes of respective neighboring segments.
 6. The method of claim 5,wherein the threshold value is based on a running average of amplitudesof a number of respective neighboring segments.
 7. The method of claim5, wherein the threshold value is based on a median of amplitudes of anumber of respective neighboring segments.
 8. The method of claim 1,wherein comparing a feature of a segment to features of respectiveneighboring segments comprises comparing a temporal length of a segmentto a threshold value, wherein the threshold value is based on temporallengths of respective neighboring segments.
 9. The method of claim 8,wherein the threshold value is based on a running average of temporallengths of a number of respective neighboring segments.
 10. The methodof claim 8, wherein the threshold value is based on a median of temporallengths of a number of respective neighboring segments.
 11. The methodof claim 1, wherein each of the segments comprises an upstroke or adownstroke, the method further comprising determining, using theprocessing equipment, whether a segment comprises an upstroke or adownstroke based on a slope of the segment.
 12. The method of claim 11,wherein comparing a feature of a segment to features of respectiveneighboring segments comprises comparing a feature of a segment to athreshold value, wherein the threshold value is based on whether thesegment is an upstroke or a downstroke.
 13. The method of claim 1,further comprising generating, using the processing equipment, a signalrepresentative of pulses in the PPG signal based on the segmentscomprising pulse portions.
 14. The method of claim 1, further comprisingdetermining, using the processing equipment, whether a segment comprisesartifact based on the comparison.
 15. The method of claim 14, whereindetermining whether a segment is artifact comprises determining whethera segment comprise a notch based on the comparison.
 16. The method ofclaim 15, wherein a notch corresponds to one of a dicrotic notch, anklenotch, or shoulder notch.
 17. The method of claim 16, furthercomprising: generating, using the processing equipment, a signalrepresentative of pulses in the PPG signal by removing segmentscomprising artifact from the PPG signal.
 18. The method of claim 16,further comprising: generating, using the processing equipment, a signalrepresentative of pulses in the PPG signal by ignoring segmentscomprising artifact in the PPG signal.
 19. The method of claim 1,further comprising determining a pulse rate of the subject based on thesegments comprising pulse portions.
 20. The method of claim 1, furthercomprising determining a pulse intensity of the subject based on thesegments comprising pulse portions.